1. Field of the Invention
This invention relates generally to the field of configuring applications, and, more particularly, to methods, systems, and computer program products for configuring applications at runtime based on context.
2. Related Art
Applications are often developed to operate in specified computing environments. For many applications, code and configuration are internally coupled within the application. As such, for these applications to operate in new computing environments, a developer may have to recode various portions of the application for compatibility with the new computing environment. That is, configuration for an application is fixed at development time.
Some compilers permit configuration changes at compile time through compiler commands. However, once an application is compiled (e.g., into an executable program), configured is essentially fixed. Further, an end user of an application may not have access to source code and/or a complier to facilitate compile time configuration changes.
The inability to use an application across diverse computing environments with requiring recoding and/or recompilation can be frustrating to end users. An end user can buy an application for use in a particular computing environment. However, over time, as technology advances, other systems are upgraded, new systems come online, etc., the end user's computing environment(s) can change. The end user may desire but be unable to use the application in the changed computing environments. Even if the application is functional, the application may not operate in an optimal fashion.
Some mechanisms have been developed to let users experiment by assigning alternate values to parameters depending on domain and layers. These mechanisms use parameter partitioning and associate subsets with layers of experiments. Other mechanisms use A/B testing to determine how different versions of an application perform. However, these are experimentation mechanisms and are typically used by developers and analysts.